home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Personal Computer World 2005 October
/
PCWOCT05.iso
/
Software
/
FromTheMag
/
Ant Movie Catalog 3.5.0.2
/
amc_install.exe
/
{app}
/
Scripts
/
MovieGoods.ifs
< prev
next >
Wrap
Text File
|
2005-03-28
|
4KB
|
153 lines
(***************************************************
Ant Movie Catalog importation script
www.antp.be/software/moviecatalog/
[Infos]
Authors=KaraGarga
Title=MovieGoods
Description=Import big movie poster from moviegoods.com
Site=moviegoods.com
Language=EN
Version=0.2
Requires=3.5.0
Comments=
License=Made for Ant Movie Catalog and can be distributed freely...
GetInfo=1
[Options]
***************************************************)
program MOVIEGOODS;
var
MovieName: string;
MovieURL: string;
ImageURL: string;
ImageName: string;
function FindLine(Pattern: string; List: TStringList; StartAt: Integer): Integer;
var
i: Integer;
begin
Result := -1;
if StartAt < 0 then
StartAt := 0;
for i := StartAt to List.Count-1 do
if Pos(Pattern, List.GetString(i)) <> 0 then
begin
Result := i;
Break;
end;
end;
procedure CutAfter(var Str: string; Pattern: string);
begin
Str := Copy(str, Pos(Pattern, Str) + Length(Pattern), Length(Str));
end;
procedure CutBefore(var Str: string; Pattern: string);
begin
Str := Copy(Str, Pos(Pattern, Str), Length(Str));
end;
function GetStringFromHTML(Page, StartTag, CutTag, EndTag: string): string;
begin
Result := '';
if Pos(StartTag, Page) > 0 then begin
CutBefore(Page, StartTag);
if Length(CutTag) > 0 then
CutAfter(Page, CutTag);
Result := Copy(Page, 0, Pos(EndTag, Page) - 1);
HTMLDecode(Result);
end;
end;
procedure AnalyzePage(Address: string);
var
Page: TStringList;
begin
Page := TStringList.Create;
Page.Text := GetPage(Address);
if pos('<TD VALIGN="top" ALIGN="center" width="120">', Page.Text) = 0 then
begin
ShowMessage('Sorry no cover available!');
end else
begin
PickTreeClear;
PickTreeAdd('Search results', '');
AddMoviesTitles(Page);
if PickTreeExec(Address) then
AnalyzePage2(Address);
end;
Page.Free;
end;
procedure AnalyzePage2(Address: string);
var
Page: TStringList;
begin
Page := TStringList.Create;
Page.Text := GetPage(Address);
begin
PickTreeClear;
PickTreeAdd('Search results', '');
AddMoviesTitles2(Page);
if PickTreeExec(Address) then
GetPicture (Address);
end;
Page.Free;
end;
procedure AddMoviesTitles(ResultsPage: TStringList);
var
Page: string;
MovieTitle, MovieAddress: string;
begin
Page := ResultsPage.Text;
while Pos('<TD VALIGN="top" ALIGN="center" width="120">', Page) > 0 do
begin
CutBefore(Page, '<TD VALIGN="top" ALIGN="center" width="120">');
MovieAddress := GetStringFromHTML(Page, 'width="120"><A HREF="', 'HREF="', '"');
MovieTitle := GetStringFromHTML(Page, 'ALT="', '"', '">');
ImageURL:= 'http://www.moviegoods.com/Assets/product_images/1000/'+GetStringFromHTML(Page, 'width="120"><img SRC="', 'SRC="', '"');
CutAfter(Page, '</A>');
MovieAddress := StringReplace(MovieAddress, '1000.A', '1020.A');
HTMLRemoveTags(MovieTitle);
PickTreeAdd(MovieTitle, MovieAddress+ImageURL);
end;
end;
procedure AddMoviesTitles2(ResultsPage: TStringList);
var
Page: string;
MovieTitle, MovieAddress: string;
begin
Page := ResultsPage.Text;
while Pos('<INPUT TYPE="HIDDEN" NAME="DSP_IMAGE" VALUE="', Page) > 0 do
begin
CutBefore(Page, '<INPUT TYPE="HIDDEN" NAME="DSP_IMAGE" VALUE="');
MovieAddress := 'http://www.moviegoods.com/Assets/product_images/1000/'+GetStringFromHTML(Page, '<INPUT TYPE="HIDDEN" NAME="DSP_IMAGE" VALUE="', 'UE="', '">');
MovieTitle := GetStringFromHTML(Page, 'border=2 ALT=', '"', '></A>');
MovieAddress := StringReplace(MovieAddress, '1000.A', '1020.A');
CutAfter(Page, '">');
HTMLRemoveTags(MovieTitle);
PickTreeAdd(MovieTitle, MovieAddress);
end;
end;
begin
if CheckVersion(3,5,0) then
begin
MovieName := GetField(fieldOriginalTitle);
if MovieName = '' then
MovieName := GetField(fieldTranslatedTitle);
if Input('MovieGoods Poster Import 0.2', 'Please enter English title:', MovieName) then
begin
AnalyzePage('http://www.moviegoods.com/search2.asp?find_spec='+UrlEncode(MovieName)+'&Go2.x=0&Go2.y=0&Go2=Go');
end;
end
else
ShowMessage('This script requires a newer version of Ant Movie Catalog (at least the version 3.5.0)');
end.